EPS-WROOM32で測距センサVL53L0Xを使ってみた
こんにちはさかじです。Developers.IO 2018も無事終了し、秋深まった札幌に戻って来ました。 横田deGoシーズン2で使用したセンサ(VL53L0X)の使用方法をまとめました。
横田deGoとは?
- シーズン1
社内の精鋭たちを集めて3週間でAmazon Goっぽい仕組みを作った -
シーズン2
Developers.IO 2018 で「Amazonの文化をハックせよ。100万円未満で無人レジの仕組みを作ってみた 〜横田deGoプロジェクト〜」について話してきました
VL53L0Xとは?
STマイクロ社距離センサVL53LXを使用した小型レーザ測距モジュールです。今回は秋月電子通商で購入したVL53L0X使用レーザー測距センサモジュール(ToF)を使用しました。
CPUモジュール
今回は秋月電子通商のESP-WROOM-32開発ボードとArduino IDEを使用しました。セットアップ方法は以下のブログを参照してください。
ESP-WROOM-32の開発環境のセットアップ
準備
Arduino IDEでVL53L0Xのライブラリをインポート
- ”ツール" - "ライブラリを管理"を選択
- ライブラリマネージャで"VL53L0X"を入力して"VL53L0X by Pololu"の最新バージョンをインストールします。
EPS-WROOM-32開発ボードとVL53L0Xを接続
VL53L0X ライブラリ github のREADME.mdにある通り接続します。
Arduino(ESP-WROOM-32) VL53L0X基板 --------------------- ---------- 3V3 - VIN GND - GND IO21(SDA) - SDA IO22(SCL) - SCL IO21,IO22は3.3KΩでプルアップする
動作確認
下記のコードを入力しESP-WROOM-32開発ボードへ書き込むと1秒毎に現在の距離を出力します。
#include <Wire.h> #include <VL53L0X.h> VL53L0X sensor; void setup() { Serial.begin(115200); Wire.begin(); sensor.init(); sensor.setTimeout(1000); sensor.startContinuous(10); } void loop() { Serial.print(sensor.readRangeSingleMillimeters()); if (sensor.timeoutOccurred()) { Serial.print(" TIMEOUT"); } Serial.println(); delay(1000); }
最後に
横田deGoでは棚ひとつに対して4個のセンサを使用して、手が「入った」「出た」の状態を監視していました。
簡単に距離が測ることができ、最大200cm(屋内)まで測定できるので色々な活用方法があると思います。